package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import modelo.ClienteDTO;
import modelo.CuentaCorrienteDTO;
import controlador.Banco;

public class ventanaDespositar extends JFrame {

	private static final long serialVersionUID = 1L;
	private Banco banco;
	private CuentaCorrienteDTO ccDTO;
	private JPanel panel;
	private JLabel lblNombre;
	private JTextField txtNombre;
	private JLabel lblApellido;
	private JTextField txtApellido;
	private JLabel lblDNI;
	private JTextField txtDNI;
	private JLabel lblDomicilio;
	private JTextField txtDomicilio;
	private JLabel lblFechaNac;
	private JTextField txtFechaNac;
	private JLabel lblDescubierto;
	private JTextField txtDescubierto;
	private JLabel lblSaldo;
	private JTextField txtSaldo;
	private JLabel lblNroCuenta;
	private JTextField txtNroCuenta;
	private JButton btnAceptar;
	private JButton btnBuscar;
	private JButton btnCancelar;
	private JLabel lblDeposito;
	private JTextField txtDeposito;

	public ventanaDespositar(Banco banco) {
		super();
		this.banco = banco;
		cargarVentana();
		establecerAcciones();
	}

	private void establecerAcciones() {
		
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				if (!txtDNI.getText().isEmpty()) {
					ClienteDTO cli = banco.buscarCliente(Integer.parseInt(txtDNI.getText())).crearClienteDTO();
					if(cli!=null){
						ccDTO=(CuentaCorrienteDTO) banco.buscarCuenta(cli.getDni()).crearCuentaDTO();
						txtNombre.setText(cli.getNombre());
						txtApellido.setText(cli.getApellido());
						txtDomicilio.setText(cli.getDomicilio());
						txtFechaNac.setText(cli.getFechaNacimiento());
						txtDescubierto.setText(String.valueOf(ccDTO.getDescubierto()));
						txtSaldo.setText(String.valueOf(ccDTO.getSaldo()));
						txtNroCuenta.setText(String.valueOf(ccDTO.getNumeroCuenta()));
					}
				} else {
					JOptionPane.showMessageDialog(null,
							"El campo DNI debe estar lleno ", "Error",
							JOptionPane.ERROR_MESSAGE);
				}
			}
		});
		
		btnAceptar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ecvt){
				banco.depositar(ccDTO.getNumeroCuenta(), Float.parseFloat(txtDeposito.getText()));
				JOptionPane.showMessageDialog(null,
						"Se ha depositado $"+Float.parseFloat(txtDeposito.getText()), "Exito",
						JOptionPane.INFORMATION_MESSAGE);
				txtSaldo.setText(String.valueOf(ccDTO.getSaldo()+Float.parseFloat(txtDeposito.getText())));
			}
		});
		btnCancelar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ecvt){
				setVisible(false);
			}
		});

	}

	private void cargarVentana() {
		setSize(600, 550);
		setVisible(true);
		panel = new JPanel();
		panel.setBounds(getBounds());
		panel.setLayout(null);
		lblNombre = new JLabel("Nombre");
		lblNombre.setBounds(20, 60, 80, 25);
		panel.add(lblNombre);
		txtNombre = new JTextField();
		txtNombre.setBounds(100, 60, 290, 25);
		txtNombre.setEnabled(false);
		panel.add(txtNombre);
		lblApellido = new JLabel("Apellido");
		lblApellido.setBounds(20, 90, 80, 25);
		panel.add(lblApellido);
		txtApellido = new JTextField();
		txtApellido.setBounds(100, 90, 290, 25);
		txtApellido.setEnabled(false);
		panel.add(txtApellido);
		lblDNI = new JLabel("DNI");
		lblDNI.setBounds(20, 120, 80, 25);
		panel.add(lblDNI);
		txtDNI = new JTextField();
		txtDNI.setBounds(100, 120, 290, 25);
		panel.add(txtDNI);
		lblFechaNac = new JLabel("Fecha Nac");
		lblFechaNac.setBounds(20, 150, 80, 25);
		panel.add(lblFechaNac);
		txtFechaNac = new JTextField();
		txtFechaNac.setBounds(100, 150, 290, 25);
		txtFechaNac.setEnabled(false);
		panel.add(txtFechaNac);
		lblDomicilio = new JLabel("Domicilio");
		lblDomicilio.setBounds(20, 180, 80, 25);
		panel.add(lblDomicilio);
		txtDomicilio = new JTextField();
		txtDomicilio.setBounds(100, 180, 290, 25);
		txtDomicilio.setEnabled(false);
		panel.add(txtDomicilio);
		lblDescubierto = new JLabel("Descubierto");
		lblDescubierto.setBounds(20, 210, 80, 25);
		panel.add(lblDescubierto);
		txtDescubierto = new JTextField();
		txtDescubierto.setBounds(100, 210, 290, 25);
		txtDescubierto.setEnabled(false);
		panel.add(txtDescubierto);
		lblSaldo = new JLabel("Saldo");
		lblSaldo.setBounds(20, 240, 80, 25);
		panel.add(lblSaldo);
		txtSaldo = new JTextField();
		txtSaldo.setBounds(100, 240, 290, 25);
		txtSaldo.setEnabled(false);
		panel.add(txtSaldo);
		lblNroCuenta = new JLabel("Nro Cuenta");
		lblNroCuenta.setBounds(20, 30, 80, 25);
		panel.add(lblNroCuenta);
		txtNroCuenta = new JTextField();
		txtNroCuenta.setBounds(100, 30, 290, 25);
		txtNroCuenta.setEnabled(false);
		panel.add(txtNroCuenta);
		lblDeposito = new JLabel("Deposito");
		lblDeposito.setBounds(20, 270, 80, 25);
		panel.add(lblDeposito);
		txtDeposito = new JTextField();
		txtDeposito.setBounds(100, 270, 290, 25);
		panel.add(txtDeposito);

		btnAceptar = new JButton("Aceptar");
		btnAceptar.setBounds(100, 450, 90, 25);
		panel.add(btnAceptar);
		this.add(panel);
		btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(200, 450, 90, 25);
		panel.add(btnCancelar);
		this.add(panel);
		btnBuscar = new JButton("Buscar");
		btnBuscar.setBounds(400, 120, 90, 25);
		panel.add(btnBuscar);
		this.add(panel);

	}

}
